// popup.js
'use strict';

document.addEventListener('DOMContentLoaded', function () {
    const exportButton = document.getElementById('exportButton');
    exportButton.addEventListener('click', function () {
        chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
            const activeTab = tabs[0];
            chrome.scripting.executeScript({
                target: { tabId: activeTab.id },
                func: function () {
                    // 用于存储所有符合条件表格的 HTML 代码
                    var allTablesHTML = '';
                    // 遍历页面中所有的 table 元素
                    document.querySelectorAll('table').forEach(item => {
                        // 获取 table 的 class 属性值并分割成类名数组
                        const classList = item.className.split(' ');
                        // 检查类名数组中是否有包含 'date' 的类名
                        let hasDateClass = false;
                        for (let className of classList) {
                            if (className.includes('date')) {
                                hasDateClass = true;
                                break;
                            }
                        }
                        // 如果没有包含 'date' 的类名，则将该 table 的 outerHTML 拼接到 allTablesHTML 中
                        if (!hasDateClass) {
                            allTablesHTML += item.outerHTML;
                        }
                    });

                    // 创建一个 a 元素，用于下载文件
                    var link = document.createElement("a");
                    // 添加带边框的 CSS 样式到 HTML 文档的 <style> 标签中
                    var html = '<html><head><meta charset="utf-8"><style>table {border-collapse: collapse; width: 100%;} table, th, td {border: 0.5px solid black;}</style></head><body>' + allTablesHTML + '</body></html>';
                    // 实例化一个 Blob 对象，其构造函数的第一个参数是包含文件内容的数组，
                    // 第二个参数是包含文件类型属性的对象，这里设置为 Excel 文件类型
                    var blob = new Blob([html], { type: "application/vnd.ms-excel" });
                    // 利用 URL.createObjectURL() 方法为 a 元素生成 blob URL
                    link.href = window.URL.createObjectURL(blob);
                    // 设置下载文件的名称
                    link.download = "导出表格.xlsx";
                    // 将 a 元素添加到文档的 body 中
                    document.body.appendChild(link);
                    // 模拟点击 a 元素，触发文件下载
                    link.click();
                    // 下载完成后，从文档中移除 a 元素
                    console.log('下载成功！');
                    document.body.removeChild(link);
                    // 释放之前创建的 blob URL，避免内存泄漏
                    window.URL.revokeObjectURL(link.href);
                }
            }).then(() => {
                console.log('脚本注入成功');
            }).catch((error) => {
                console.error('脚本注入失败:', error);
            });
        });
    });
});